-- Constructor Translations

local SCRIPT_VERSION = "0.33"
local translations = {}

---
--- Debug Log
---

local function debug_log(message, additional_details)
    if CONSTRUCTOR_CONFIG.debug_mode then
        if CONSTRUCTOR_CONFIG.debug_mode == 2 and additional_details ~= nil then
            message = message .. "\n" .. inspect(additional_details)
        end
        util.log("[constructor_translations] "..message)
    end
end

---
--- Translation Helpers
---

translations.lang = {}
translations.current_translations = {}
translations.missing_translations = {}
local LANG_STRING_NOT_FOUND = "/!\\ STRING NOT FOUND /!\\"

function CONSTRUCTOR_TRANSLATE_FUNCTION(text)
    local translated_string = translations.current_translations[text]
    if translated_string ~= nil and translated_string ~= LANG_STRING_NOT_FOUND then
        --debug_log("Found local translation for '"..text.."'")
        return translated_string
    end
    local label_id = lang.find(text, "en")
    if label_id then
        --debug_log("Found global translation for '"..text.."'")
        translated_string = lang.get_string(label_id, lang.get_current())
        if translated_string ~= LANG_STRING_NOT_FOUND then
            return translated_string
        end
    else
        --debug_log("Missing translation: "..text)
        translations.missing_translations[text] = text
    end
    return text
end

translations.inject_custom_translations = function()
    for lang_id, language_key in pairs(translations.GAME_LANGUAGE_IDS) do
        if translations.lang[lang_id] ~= nil then
            --debug_log("Processing translations language "..lang_id)
            lang.set_translate(lang_id)
            for english_string, translated_string in pairs(translations.lang[lang_id]) do
                local label_id = lang.find(english_string, "en")
                --debug_log("Found label for '"..english_string.."' as label "..label_id)
                if (not label_id) or label_id == 0 then
                    label_id = lang.register(english_string)
                    --debug_log("Registered '"..english_string.."' as label "..label_id)
                end
                local existing_translation = lang.get_string(label_id, lang_id)
                if (not existing_translation) or existing_translation == english_string or existing_translation == LANG_STRING_NOT_FOUND then
                    --debug_log("Adding translation for "..lang_id.." '"..english_string.."' ["..label_id.."] as '"..translated_string.."'  Existing translation: '"..existing_translation.."'")
                    if label_id > 0 then
                        local translate_status, translate_response = pcall(lang.translate, label_id, translated_string)
                        if not translate_status then
                            debug_log("Failed to add translation '"..english_string.."' as label "..label_id)
                        end
                    else
                        --debug_log("Cannot translate internal label")
                    end
                    if lang_id == lang.get_current() then
                        translations.current_translations[english_string] = translated_string
                    end
                else
                    --debug_log("Found translation for "..lang_id.." '"..english_string.."' ["..label_id.."] as '"..existing_translation.."'")
                end
            end
        end
    end
end

translations.log_missing_translations = function()
    util.toast("Logged "..#translations.missing_translations.." missing translations", TOAST_ALL)
    util.log(inspect(translations.missing_translations))
end

translations.GAME_LANGUAGE_IDS = {
    ["en"] = "en-US",
    ["fr"] = "fr-FR",
    ["de"] = "de-DE",
    ["it"] = "it-IT",
    ["es"] = "es-ES",
    ["pt"] = "pt-BR",
    ["pl"] = "pl-PL",
    ["ru"] = "ru-RU",
    ["ko"] = "ko-KR",
    ["zh"] = "zh-TW",
    ["ja"] = "ja-JP",
}
translations.LANGUAGE_NAMES = {
    ["en-US"] = "English",
    ["fr-FR"] = "French",
    ["de-DE"] = "German",
    ["it-IT"] = "Italian",
    ["es-ES"] = "Spanish",
    ["pt-BR"] = "Brazilian",
    ["pl-PL"] = "Polish",
    ["ru-RU"] = "Russian",
    ["ko-KR"] = "Korean",
    ["zh-TW"] = "Chinese (Traditional)",
    ["ja-JP"] = "Japanese",
    ["es-MX"] = "Spanish (Mexican)",
    ["zh-CN"] = "Chinese (Simplified)"
}

translations.lang = {}

--- Chinese (Simplified)
--- By       Zelda Two

translations.lang["zh"] = {
    ["More stable, but updated less often."] = "更稳定,但更新频率较低.",
    ["Cutting edge updates, but less stable."] = "最新版本,但是不太稳定",
    ["Loading..."] = "加载...",
    ["Installing auto-updater..."] = "安装自动更新...",
    ["Error downloading auto-updater: "] = "自动更新下载错误: ",
    ["Found empty file."] = "发现空文件.",
    ["Could not open file for writing."] = "无法打开文件进行写入.",
    ["Successfully installed auto-updater lib"] = "成功安装自动更新到lib",
    ["Error downloading auto-updater lib. Update failed to download."] = "自动更新下载lib错误.更新下载失败.",
    ["Error downloading auto-updater lib. HTTP Request timeout"] = "下载lib时出错.HTTP请求超时",
    ["Invalid auto-updater lib. Please delete your Stand/Lua Scripts/lib/auto-updater.lua and try again"] = "无效自动更新lib.请删除你的Stand/Lua Scripts/lib/auto-updater.lua 然后在试一次",
    ["translations"] = "翻译",
    ["Missing translation: "] = "缺少翻译: ",
    ["Adding translations for language "] = "添加语言翻译 ",
    ["Found label for "] = "建立标签 ",
    ["Registered "] = "记录 ",
    ["Saving translation for "] = "保存翻译 ",
    ["Could not natives lib. Make sure it is selected under Stand > Lua Scripts > Repository > natives-1663599433"] = "没有lib.确保已经下载 Stand > Lua Scripts > Repository > natives-1663599433",
    ["Max table depth reached"] = "达到最大组合数量？",
    ["Adding attachment to construct "] = "添加附件到构造 ",
    ["Removing preview "] = "删除预览 ",
    ["Adding a preview "] = "添加预览",
    ["Building construct plan description "] = "建造构造平面图说明",
    ["Adding preview for construct plan "] = "为模型添加平面图 ",
    ["Shoot (or press J) to add "] = "射击 (或按 J) 到添加 ",
    ["Attaching "] = "附加 ",
    ["Adding spawned construct to list "] = "添加生成的构造到列表中 ",
    ["Creating construct from vehicle handle "] = "从载具手把中创建构造 ",
    ["Vehicle is already a construct"] = "载具已经是构造",
    ["Saving construct "] = "保存构造 ",
    ["Cannot write to file "] = "无法写入文件 ",
    ["Cannot save vehicle: Error serializing."] = "无法保存载具:序列化错误.",
    ["Deleting construct "] = "删除构造",
    ["Spawning construct from plan "] = "从计划生成构造 ",
    ["Failed to spawn construct from plan "] = "无法从平面图中生成构造 ",
    ["Building construct from plan name="] = "从平面图名称中生成构造=",
    ["Clean up on close"] = "关闭脚本时清理",
    ["Rebuilding "] = "重建 ",
    ["Invalid construct file. "] = "无效构造文件. ",
    ["Could not read file '"] = "无法读取文件 '",
    ["Failed to load XML file: "] = "无法加载 XML 文件: ",
    ["Failed to load INI file: "] = "无法加载 INI 文件: ",
    ["Failed to load JSON file: "] = "无法加载 JSON 文件: ",
    ["Loading construct plan file from "] = "从文件路径加载构造平面图文件 ",
    ["Failed to load construct from file "] = "无法从文件加载构造 ",
    ["Loaded construct plan "] = "加载构造平面图 ",
    ["Animating peds "] = "动画 peds ",
    ["Rebuilding ped "] = "重建 ped ",
    ["Rebuilding reattach to menu "] = "重新附加到菜单 ",
    ["Max depth reached while reattaching"] = "最大地下水位深度重新连接？",
    ["Reattaching "] = "重新连接 ",
    ["Load More"] = "加载更多",
    ["Attachment missing handle"] = "附件缺少手把",
    ["Name"] = "名称",
    ["Set name of the attachment"] = "此组件名称",
    ["Position"] = "位置",
    ["Offset"] = "偏移",
    ["X: Left / Right"] = "X: 左/右",
    ["Y: Forward / Back"] = "Y: 前/后",
    ["Z: Up / Down"] = "Z: 上/下",
    ["Rotation"] = "旋转",
    ["X: Pitch"] = "X: 俯仰",
    ["Y: Roll"] = "Y: 翻滚",
    ["Z: Yaw"] = "Z: 偏摆",
    ["World Position"] = "世界：偏移",
    ["World Rotation"] = "世界：旋转",
    ["Hold SHIFT to fine tune"] = "按住SHIFT键进行微调",
    ["Options"] = "其他选项",
    ["Visible"] = "可见",
    ["Will the attachment be visible, or invisible"] = "附件是可见还是不可见",
    ["Collision"] = "碰撞",
    ["Will the attachment collide with things, or pass through them"] = "附件是会与物体碰撞还是穿过他们",
    ["Invincible"] = "无敌",
    ["Will the attachment be impervious to damage, or be damageable. AKA Godmode."] = "附件是不是无敌的.",
    ["Gravity"] = "重力",
    ["Will the attachment be effected by gravity, or be weightless"] = "附件是受重力影响还是失重",
    ["Frozen"] = "冻结",
    ["Will the attachment be frozen in place, or allowed to move freely"] = "附件会被冻结在原地，还是允许自由移动",
    ["VEHICLE"] = "载具",
    ["Vehicle Options"] = "载具选项",
    ["Additional options available for all vehicle entities"] = "载具实体选项",
    ["Engine Always On"] = "引擎启动",
    ["Radio Loud"] = "载具电台",
    ["If enabled, vehicle radio will play loud enough to be heard outside the vehicle."] = "如果开启载具电台声音大到可以在车外听到.",
    ["Sirens"] = "警笛",
    ["Off"] = "关",
    ["Lights Only"] = "仅灯光",
    ["Sirens and Lights"] = "警笛和灯光",
    ["Invis Wheels"] = "隐形轮胎",
    ["Door Lock Status"] = "门锁状态",
    ["Vehicle door locks"] = "载具门锁",
    ["Dirt Level"] = "污垢等级",
    ["How dirty is the vehicle"] = "载具有多脏",
    ["Bullet Proof Tires"] = "防弹轮胎",
    ["Burst Tires"] = "爆胎",
    ["Are tires burst"] = "车胎爆破",
    ["Broken Doors"] = "拆除车门",
    ["Remove doors and trunks"] = "移除车门和后备箱",
    ["Break Door: Front Left"] = "拆除门:左前",
    ["Break Door: Back Left"] = "拆除门:左后",
    ["Break Door: Front Right"] = "拆除门:右前",
    ["Break Door: Back Right"] = "拆除门:右后",
    ["Break Door: Hood"] = "拆除门: 引擎盖",
    ["Break Door: Trunk"] = "拆除门: 后备箱",
    ["Break Door: Trunk2"] = "拆除门: 后备箱2",
    ["Remove door."] = "拆除门.",
    ["Ped Options"] = "人物选项",
    ["Can Rag Doll"] = "布娃娃",
    ["If enabled, the ped can go limp."] = "如果启用,ped将没有布娃娃系统.",
    ["Armor"] = "护甲",
    ["How much armor does the ped have."] = "ped有多少护甲",
    ["On Fire"] = "着火",
    ["Will the ped be burning on fire, or not"] = "ped会不会着火",
    ["Clothes"] = "衣服",
    ["Props"] = "道具",
    ["Attachment Options"] = "附件选项",
    ["Additional options available for all entities attached to a parent object."] = "附加到父级的实体选项.",
    ["Attached"] = "附加",
    ["Is this child physically attached to the parent, or does it move freely on its own."] = "这个附着物是附加在身体上还是父级,还是自由移动.",
    ["Change Parent"] = "更改父级",
    ["Select a new parent for this child. Construct will be rebuilt to accommodate changes."] = "为这个附着物更换一个新的父级,构造将被重建.",
    ["Bone Index"] = "骨骼附加位置",
    ["Which bone of the parent should this entity be attached to"] = "此实体应附加到父级的哪个骨骼",
    ["Bone Index Picker"] = "骨骼搜索",
    ["Some common bones can be selected by name"] = "可以按常见名称来搜索骨骼",
    ["Soft Pinning"] = "软固定",
    ["Will the attachment detach when repaired"] = "维修时附件会分离吗",
    ["Separate"] = "分离",
    ["Detach attachment from construct to create a new construct"] = "从构造中分离附件以创建新构造",
    ["Copy to Me"] = "复制到我",
    ["Attach a copy of this object to your Ped."] = "将此Ped的附件附加到你身上.",
    ["Making ped into "] = "将 ped 变成 ",
    ["More Options"] = "更多选项",
    ["LoD Distance"] = "细节距离",
    ["Level of Detail draw distance"] = "细节绘制距离",
    ["Blip"] = "图标",
    ["Blip Sprite"] = "地图图标",
    ["Icon to show on mini map for this construct"] = "在小地图上显示该构造的图标",
    ["Blip Color"] = "图标颜色",
    ["Mini map icon color"] = "小地图的图标颜色",
    ["Blip Reference"] = "图标参考",
    ["Reference website for blip details"] = "参考网站地图图标的详细信息",
    ["Lights"] = "灯",
    ["Light On"] = "开灯",
    ["If attachment is a light, it will be on and lit (many lights only work during night time)."] = "如果附附件是灯,它是否会被打开(很多灯只会在晚上工作).",
    ["Light Disabled"] = "禁灯",
    ["If attachment is a light, it will be ALWAYS off, regardless of others settings."] = "如果附件是灯,它将被关闭,只要你开了这个无论这么设置都是关闭.",
    ["Proofs"] = "防护",
    ["Bullet Proof"] = "防弹",
    ["If attachment is impervious to damage from bullets."] = "附件不受子弹伤害",
    ["Fire Proof"] = "防火",
    ["If attachment is impervious to damage from fire."] = "附件不受火焰伤害",
    ["Explosion Proof"] = "防爆炸",
    ["If attachment is impervious to damage from explosions."] = "附件不受爆炸伤害",
    ["Melee Proof"] = "防近战",
    ["If attachment is impervious to damage from melee attacks."] = "附件不受近战伤害",
    ["Attachments"] = "附件",
    ["Add Attachment"] = "添加附件",
    ["Options for attaching other entities to this construct"] = "添加其他附件到该组件内.",
    ["Curated"] = "附件大全",
    ["Browse a curated collection of attachments"] = "浏览精心挑选的附件",
    ["Search"] = "搜索",
    ["Search for a prop by name"] = "按名称搜索大致附件",
    ["Add by Name"] = "搜索添加",
    ["Add an object, vehicle, or ped by exact name."] = "搜索准确名称添加物体，车辆或人物.",
    ["Object by Name"] = "物体名称",
    ["Add an in-game object by exact name. To search for objects try https://gta-objects.xyz/"] = "搜索准确名称添加",
    ["Ped by Name"] = "人物名称",
    ["Add a vehicle by exact name."] = "搜索准确名称添加",
    ["Open gta-objects.xyz"] = "打开用于搜索模型名称的网站",
    ["Website for browsing and searching for props"] = "用于浏览和搜索附件的网站",
    ["Add Attachment Gun"] = "附件添加枪",
    ["Anything you shoot with this enabled will be added to the current construct"] = "启用此功能射击的任何物体都将添加到当前构造中",
    ["Edit Attachments"] = "编辑附件",
    ["Clone"] = "克隆",
    ["Clone (In Place)"] = "克隆 (原处)",
    ["Clone Reflection: X:Left/Right"] = "克隆映像：X:左/右",
    ["Clone Reflection: Y:Front/Back"] = "克隆映像：Y:前/后",
    ["Clone Reflection: Z:Up/Down"] = "克隆映像：Z:上/下",
    ["Actions"] = "行动",
    ["Teleport"] = "传送",
    ["Teleport Into Vehicle"] = "传送到载具",
    ["Move your player into the vehicle driver seat"] = "传送人物到驾驶位上",
    ["Teleport Me to Construct"] = "传送我到 构造",
    ["Teleport Construct to Me"] = "构造 传送到我",
    ["Debug Info"] = "调试信息",
    ["Rebuild"] = "重新创建",
    ["Delete construct (if it still exists), then recreate a new one from scratch."] = "删除当前组件并重新生成.",
    ["Save As"] = "另存为",
    ["Save construct to disk"] = "将构造保存到磁盘",
    ["Delete"] = "删除",
    ["Delete construct and all attachments. Cannot be reconstructed unless saved."] = "删除构造和所有附件.除非保存，否则无法重建.",
    ["Are you sure you want to delete this construct? "] = "您确定要删除此构造吗？ ",
    [" children will also be deleted."] = " 附件也将被删除.",
    ["Rebuilding attachment menu "] = "重建附件菜单 ",
    ["Focusing on attachment menu "] = "调整附件菜单 ",
    ["Create New Construct"] = "创建新构造",
    ["Vehicle"] = "载具",
    ["From Current"] = "当前载具",
    ["Create a new construct based on current (or last in) vehicle"] = "在当前载具(或最后一辆)进行构建",
    ["Error: You must be (or recently been) in a vehicle to create a construct from it"] = "错误:你必须在坐过当前载具(或最后一辆)才能进行构造",
    ["From Vehicle Name"] = "载具名称",
    ["Create a new construct from an exact vehicle name"] = "搜索载具名称并生成",
    ["Structure (Map)"] = "构造(地图)",
    ["From New Construction Cone"] = "物体构造",
    ["Create a new stationary construct"] = "搜索并创建一个新的固定模型",
    ["From Object Name"] = "物体名称",
    ["Create a new stationary construct from an exact object name"] = "从物体名称搜索一个新的固定模型",
    ["Ped (Player Skin)"] = "玩家模型(玩家皮肤)",
    ["From Me"] = "构造自己",
    ["Create a new construct from your player Ped"] = "对当前模型进行自我构造",
    ["Player is already a construct"] = "玩家已经是一个构造体",
    ["From Ped Name"] = "人物名称",
    ["Create a new Ped construct from exact name"] = "搜索创建一个新的人物模型",
    ["Load Construct"] = "加载构造体",
    ["Load a previously saved or shared construct into the world"] = "将保存或共享的构造加载到世界中",
    ["Loaded Constructs"] = "已加载构造",
    ["View and edit already loaded constructs"] = "查看和编辑已经加载的构造",
    ["Search all your construct files"] = "搜索文件并生成",
    ["Edit your search query"] = "搜索构造体",
    ["No results found"] = "没有搜索结果",
    ["Missing downloaded file "] = "缺少下载文件 ",
    ["File downloaded "] = "文件已下载 ",
    ["Unzipping"] = "正在解压缩",
    ["Unzipped"] = "已解压缩",
    ["Open Constructs Folder"] = "打开模组文件夹",
    ["Open constructs folder. Share your creations or add new creations here."] = "打开模组文件夹.在此处分享您的作品或添加新作品.",
    ["Download Curated Constructs"] = "下载精选模组",
    ["Download a curated collection of constructs."] = "下载精选的模组集合",
    ["Drive Spawned Vehicles"] = "驾驶生成载具",
    ["When spawning vehicles, automatically place you into the drivers seat."] = "生成载具时，自动将您置于驾驶员座位.",
    ["Wear Spawned Peds"] = "穿上生成的人物模型",
    ["When spawning peds, replace your player skin with the ped."] = "生成人物模型后将用人物模型的皮肤代替玩家的皮肤.",
    ["Browse"] = "浏览",
    ["Global Configs"] = "全局配置",
    ["Edit Offset Step"] = "编辑偏移量",
    ["The amount of change each time you edit an attachment offset (hold SHIFT for fine tuning)"] = "每次编辑附件偏移时的变化量(按住SHIFT键进行微调)",
    ["Edit Rotation Step"] = "编辑旋转量",
    ["The amount of change each time you edit an attachment rotation (hold SHIFT for fine tuning)"] = "每次编辑附件旋转时的变化量(按住SHIFT键进行微调)",
    ["Show Previews"] = "显示预览",
    ["Show previews when adding attachments"] = "选择附件时显示预览",
    ["Preview Display Delay"] = "显示预览延迟",
    ["After browsing to a construct or attachment, wait this long before showing the preview."] = "在浏览一个组件或单附件,需要多久才会显示出来.",
    ["Delete All on Unload"] = "解构控制",
    ["Deconstruct all spawned constructs when unloading Constructor"] = "停止脚本时是否解构所有生成的组件或附件",
    ["Clean Up"] = "清理",
    ["Remove nearby vehicles, objects and peds. Useful to delete any leftover construction debris."] = "移除附近所有生成的载具,物体和ped组件",
    ["Script Meta"] = "脚本信息",
    ["Constructor"] = "[构造]Constructor",
    ["Version"] = "版本",
    ["Release Branch"] = "更新发布处",
    ["Switch from main to dev to get cutting edge updates, but also potentially more bugs."] = "从main[稳定]切换到dev[开发]可能会有更多bug.",
    ["Check for Update"] = "检查更新",
    ["The script will automatically check for updates at most daily, but you can manually check using this option anytime."] = "脚本会每天自动检查更新,但是你也可以用此项手动检查.",
    ["No updates found"] = "没有更新",
    ["Clean Reinstall"] = "清除重新安装",
    ["Force an update to the latest version, regardless of current version."] = "强制更新到最新版本,而不考虑当前版本.",
    ["Debug Mode"] = "调试模式",
    ["Log additional details about Constructors actions."] = "记录构造者调试信息到Stand Log",
    ["Log Missing Translations"] = "记录缺失翻译",
    ["Log any newly found missing translations"] = "记录任何缺失的翻译",
    ["Github Source"] = "Github资源",
    ["View source files on Github"] = "在Github上查看源文件",
    ["Discord"] = "官方Discord",
    ["Open Discord Server"] = "打开Discord服务器",
    ["Credits"] = "鸣谢",
    ["Developers"] = "开发",
    ["Main developer"] = "本脚本开发",
    ["Development, Testing, Suggestions and Support"] = "测试,建议和支持",
    ["Inspirations"] = "启示",
    ["Much of Constructor is based on code originally copied from Jackz Vehicle Builder and this script wouldn't be possible without it. Constructor is just my own copy of Jackz's amazing work. Thank you Jackz!"] = "大部分Constructor都是基于Jackz Vehicle Builder的代码,没有它.这个脚本就不可能实现.构造者只是我对Jackz惊人作品的复制品.谢谢你,Jackz！",
    ["LanceSpooner is also a huge inspiration to this script. Thanks Lance!"] = "构造者要感谢LanceSpooner的启发,谢谢你Lance！",
    ["Install Curated Constructs"] = "安装作者推荐精选模组",
    ["Download and install a curated collection of constructs from https://github.com/hexarobi/stand-curated-constructs"] = "从以下网站下载并安装精选的构造合集 https://github.com/hexarobi/stand-curated-constructs",
    ["Development, Ped Curation"] = "开发, Ped策划",
    ["Focus Menu on Spawned Constructs"] = "生成组件自动切换父级菜单",
    ["When spawning a construct, focus Stands menu on the newly spawned construct. Otherwise, stay in the Load Constructs menu."] = "生成组件时自动帮你切换到已加载的构造菜单中",
    ["From Nearby"] = "附近载具",
    ["Create a new construct based on nearby vehicle"] = "从附近载具创建新构造",
    ["Entity Options"] = "实体选项",
    ["Additional options available for all entities."] = "实体选择选",
    ["Alpha"] = "透明度",
    ["The amount of transparency the object has. Local only!"] = "该物体透明度.仅限本地!",
    ["Mission Entity"] = "任务实体",
    ["If attachment is treated as a mission entity."] = "附件被视为任务实体",
    ["Give Weapon"] = "给予武器",
    ["Give the ped a weapon."] = "给予该ped武器",
    ["Vehicle by Name"] = "载具名称",
    ["From Current Vehicle"] = "当前载具",
    ["From Vehicle List"] = "载具列表",
    ["Create a new construct from a list of vehicles"] = "从载具列表中生成新的载具",
    ["From Object Search"] = "物体名称",
    ["Create a new map by searching for a object"] = "搜索物体名称并生成",
    ["From Current Ped"] = "自我构造",
    ["From Ped List"] = "人物列表",
    ["Create a new construct from a list of peds"] = "从人物列表中生成新的人物",
    ["Spawn Entity Delay"] = "生成实体延迟",
    ["Pause after spawning any object. Useful for preventing issues when spawning large constructs with many objects."] = "每个实体生成之间的延迟.",
    ["Freeze Position"] = "冻结位置",
    ["Will the construct be frozen in place, or allowed to move freely"] = "附件是否被冻结在原地.",
    ["Particle Effects"] = "粒子特效",
    ["Browse a curated collection of particle effects"] = "预览精品粒子特效",
    ["Clean Up Distance"] = "清理距离",
    ["How far away the cleanup command will reach to delete entities."] = "实体的清除距离是多少",
    ["Info"] = "信息",
    ["Set name of the player that created this construct"] = "创建此模组的作者名字",
    ["Description"] = "描述",
    ["Set text to describe this construct"] = "此模组的描述",
    ["Create a new construct from a base vehicle, object, or ped. Then extend it with attachments. Finally save your creation and share it with others."] = "从一个车辆、物体或人物创建一个新的组合.然后用附件来拼接它.最后保存你的创作并与他人分享.",
    ["Set global configuration options."] = "设置全局配置选项",
    ["Information and options about the Constructor script itself."] = "关于此脚本的相关信息和选项",
    ["Chat Spawnable Dir"] = "聊天生成目录",
    ["Set a Constructs sub-folder to be spawnable by name. Only available for users with permission to use Spawn Commands. See Online>Chat>Commands"] = "将Constructs子文件夹设置为名称生成.仅适用于有权使用“生成命令”的用户.请参见线上>聊天>命令",
    ["Constructs Allowed Per Player"] = "构造体上限",
    ["CqCq and Zelda Two"] = "Zelda Two",
    ["The number of constructs any one player can spawn at a time. When a player tried to spawn additional constructs past this limit, the oldest spawned construct will be deleted."] = "玩家可生成的构造数,当生成指定数后将删除老的构造.",
    ["Editing"] = "编辑",
    ["Set configuration options relating to editing constructs."] = "设置编辑与constructs有关的配置选项",
    ["Previews"] = "预览",
    ["Set configuration options relating to previewing constructs."] = "设置预览constructs有关的配置选项",
    ["Debug"] = "调试",
    ["Chat Spawn Commands"] = "聊天生成命令",
    ["Hold SHIFT to fine tune, or hold CONTROL to move ten steps at once."] = "按住SHIFT键进行微调，或按住Ctrl键一次移动10倍.",
    ["Set configuration options relating to debugging the menu."] = "设置调试菜单有关的配置选项",
    ["Set configuration options relating to spawning constructs."] = "设置生成constructs有关的配置选项",
    ["Translators"] = "翻译",
    ["Auto-Update"] = "自动更新",
    ["Rotation Order"] = "旋转顺序",
    ["Set the order that rotations should be applied."] = "设置旋转顺序",
    ["Additional options available for Ped entities."] = "人物可用选项.",
    ["Make a new copy of this entity, at the same location as the original"] = "为该实体制作一个新的副本，位置与原实体相同",
    ["Make a new copy of this entity, but at the mirror location about the X-axis"] = "为该实体制作一个新的副本，位置在X轴镜像位置.",
    ["Make a new copy of this entity, but at the mirror location about the Y-axis"] = "为该实体制作一个新的副本，位置在Y轴镜像位置.",
    ["Make a new copy of this entity, but at the mirror location about the Z-axis"] = "为该实体制作一个新的副本，位置在Z轴镜像位置.",
    ["Move your player to the construct, or vice versa."] = "玩家传到构造或构造传送到玩家.",
    ["Information about the construct"] = "有关该构造的信息",
    ["Position and Rotation options"] = "位置和旋转选项",
    ["Configuration options for this entity"] = "该实体的配置选项",
    ["Modify other entities attached to this entity"] = "修改附加到此实体的其他实体",
    ["Make a copy of this attachment"] = "复制此附件",
    ["Move your player nearby the construct, but not inside of it."] = "将玩家传送到构造附近",
    ["Move the construct to be nearby your player"] = "将构造移动到玩家附近",
    ["Free Edit"] = "自由编辑",
    ["Position this object using controller or mouse"] = "使用手柄或鼠标拖动该物体",
    ["Always Spawn at Position"] = "始终在位置上生成",
    ["Other Construct"] = "其他构造",
    ["Attach another construct to the current construct"] = "将另一个结构体附加到当前结构体上",
    ["Object Tint"] = "物体色调",
    ["The color of the object"] = "物体颜色",
    ["LS Customs"] = "载具定制",
    ["Vehicle modifications normally available in Los Santos Customs"] = "载具改装定制服务",
    ["Steering Bias"] = "转向偏差",
    ["Set wheel position. Must be driving to set, but will stay when you exit until someone else drives."] = "设置轮胎左右偏差",
    ["Siren Control"] = "警笛控制",
    ["If enabled, and this vehicle has a siren, then siren controls will effect this vehicle. Has no effect on vehicles without a siren."] = "如果启用，并且这辆车有警笛，那么警笛控制将影响这辆车.对没有警笛的车辆没有影响.",
    ["Engine Sound"] = "引擎声音",
    ["Set vehicle engine sound from another vehicle name."] = "从另一个载具名称设置载具引擎声音",
    ["Invisible Wheels"] = "隐形轮胎",
    ["If enabled, the vehicle wheels will be invisible"] = "如果启用，车轮将不可见",
    ["Drift Tires"] = "漂移轮胎",
    ["If enabled, the vehicle tires will have low grip"] = "如果启用，车辆轮胎将具有低抓地力",
    ["Paint Fade"] = "车漆掉色",
    ["Windows Rolled Down"] = "窗户摇下",
    ["Roll up and down windows"] = "摇上摇下窗户",
    ["Windows Broken"] = "窗户破碎",
    ["Loop Timer"] = "循环时间",
    ["How often should the effect repeat. If this is 0 then it should try to loop forever."] = "粒子特效应该多久循环一次,为0时将一直循环.",
    ["Particle Color"] = "粒子颜色",
    ["Particle effect size"] = "粒子大小比例",
    ["Ignore Events"] = "忽略事件",
    ["If enabled, the ped will ignore events going on that might otherwise cause the ped to flee or cower."] = "如果开启,NPC就无视周围的事件,避免NPC逃跑.",
    ["Animation"] = "动画",
    ["Dictionary"] = "代码",
    ["Set the animation dictionary available for the animation name to load from."] = "设置动画名称对应的动画代码",
    ["Set the animation name to load from the dictionary"] = "设置动画代码对应的动画名称",
    ["Animation List"] = "动画列表",
    ["Scenario"] = "场景",
    ["Set the animation scenario, separate from dictionary and name."] = "设置动画场景,与代码和名称分开",
    ["Scenario List"] = "场景列表",
    ["Will this construct always spawn at the same world position it's in now (for stationary maps) or in front of the player (for props or small structures)"] = "该建筑是否总是在它现在所处的世界位置（对于静止的地图）或在玩家面前（对于道具或小型结构）生成？",
    ["Automatically install updates as they are released. Disable if you cannot successfully fetch updates as normal."] = "作者更新lua时会自动进行更新,如果你无法更新,请取消自动更新.",
}


--- Spanish
--- By      Tryce

translations.lang["es"] = {
    ["More stable, but updated less often."] = "Tendras mayor estabilidad pero con actualizaciones menos frecuentes.",
    ["Cutting edge updates, but less stable."] = "Tendras las ultimas actualizaciones pero con menor estabilidad",
    ["Loading..."] = "Esperar tu debes...",
    ["Installing auto-updater..."] = "Instalando actualizador automatico...",
    ["Error downloading auto-updater: "] = "La descarga del actualizador automatico ha fallado uu : ",
    ["Found empty file."] = "Se encontró un archivo vacio.",
    ["Could not open file for writing."] = "No se puedo abrir el archivo para escribir.",
    ["Successfully installed auto-updater lib"] = "Instalada correctamente la libreria del actualizador automatico",
    ["Error downloading auto-updater lib. Update failed to download."] = "La libreria del actualizador automatico ha fallado. No se ha podido descargar la actualización",
    ["Error downloading auto-updater lib. HTTP Request timeout"] = "La libreria del actualizador automatico ha fallado. Se ha superado el tiempo de espera de solicitud HTTP",
    ["Invalid auto-updater lib. Please delete your Stand/Lua Scripts/lib/auto-updater.lua and try again"] = "La librería del actualizador automatico no es valida. Por favor elimine Stand/Lua Scripts/lib/auto-updater.lua y vuelva a intentarlo",
    ["translations"] = "Traducciones",
    ["Missing translation: "] = "Traduccion perdida: ",
    ["Adding translations for language "] = "Agregar traducciones para el lenguaje ",
    ["Found label for "] = "Etiqueta encontrada para ",
    ["Registered "] = "Registrado ",
    ["Saving translation for "] = "Guardando traduccion para ",
    ["Could not natives lib. Make sure it is selected under Stand > Lua Scripts > Repository > natives-1663599433"] = "La libreria de nativos no fue encontrada, asegurate de haber seleccionado Stand > Scripts en lua > Repositorio > natives-1663599433",
    ["Max table depth reached"] = "Se ha alcanzado el maximo numero de combinaciones",
    ["Adding attachment to construct "] = "Se añadió el Accesorio al Constructo",
    ["Removing preview "] = "Quitar vista previa ",
    ["Adding a preview "] = "Agregar una vista previa",
    ["Building construct plan description "] = "Construyendo la descripcion del modelo del constructo ",
    ["Adding preview for construct plan "] = "Añadiendo vista previa al modelo del constructo ",
    ["Shoot (or press J) to add "] = "Dispara (o presiona J) para añadir ",
    ["Attaching "] = "Fusionando Accesorio ",
    ["Adding spawned construct to list "] = "Añadiendo a la lista el constructo Generado ",
    ["Creating construct from vehicle handle "] = "Crear el constructo a partir del vehiculo que estas manejando ",
    ["Vehicle is already a construct"] = "El vehiculo ya es un constructo",
    ["Saving construct "] = "Guardando constructo ",
    ["Cannot write to file "] = "No se puede escribir en el archivo ",
    ["Cannot save vehicle: Error serializing."] = "El vehiculo no puede ser guardado: error al serializar.",
    ["Deleting construct "] = "Borrando constructo",
    ["Spawning construct from plan "] = "Generando el Constructo desde el modelo",
    ["Failed to spawn construct from plan "] = "Error al generar el modelo del constructo ",
    ["Building construct from plan name="] = "Armando el constructo desde su nombre de modelo",
    ["Clean up on close"] = "Limpiar al cerrar",
    ["Rebuilding "] = "Rearmar ",
    ["Invalid construct file. "] = "Archivo de constructo invalido. ",
    ["Could not read file '"] = "No se pudo leer el archivo '",
    ["Failed to load XML file: "] = "Error al cargar el archivo XML: ",
    ["Failed to load INI file: "] = "Error al cargar el archivo INI: ",
    ["Failed to load JSON file: "] = "Error al cargar el archivo JSON: ",
    ["Loading construct plan file from "] = "Cargando el constructo desde el archivo del modelo ",
    ["Failed to load construct from file "] = "Error al cargar el constructo desde el archivo ",
    ["Loaded construct plan "] = "Constructo cargado ",
    ["Animating peds "] = "Animando ped ",
    ["Rebuilding ped "] = "Reconstruyendo ped ",
    ["Rebuilding reattach to menu "] = "Reconstruyendo Accesorio al menu ",
    ["Max depth reached while reattaching"] = "Se alcanzó la profundidad maxima mientras se reconstruia",
    ["Reattaching "] = "Fusionando el Accesorio otra vez ",
    ["Load More"] = "Cargar mas",
    ["Attachment missing handle"] = "Manejando Accesorio faltante ",
    ["Rebuilding attachment menu "] = "Reconstruyendo menu de Accesorios ",
    ["Name"] = "Nombre",
    ["Set name of the attachment"] = "Selecciona el nombre del Accesorio",
    ["Position"] = "Posición",
    ["Offset"] = "Desfase",
    ["X: Left / Right"] = "X: Izquierda/Derecha",
    ["Y: Forward / Back"] = "Y: Adelante/Atras",
    ["Z: Up / Down"] = "Z: Arriba/Abajo",
    ["Rotation"] = "Rotacion",
    ["X: Pitch"] = "eje: X",
    ["Y: Roll"] = "eje: Y",
    ["Z: Yaw"] = "eje: Z",
    ["World Position"] = "Posicion en el mundo",
    ["World Rotation"] = "Rotacion en el mundo",
    ["Hold SHIFT to fine tune"] = "Manten presionado SHIFT para ajustar con precisión",
    ["Options"] = "Opciones",
    ["Visible"] = "Visible",
    ["Will the attachment be visible, or invisible"] = "El Accesorio va a ser Visible o Invisible",
    ["Collision"] = "Colision",
    ["Will the attachment collide with things, or pass through them"] = "El Accesorio tendrá colisiones, o pasará a traves de ellos",
    ["Invincible"] = "Invencibilidad",
    ["Will the attachment be impervious to damage, or be damageable. AKA Godmode."] = "El Accesorio podrá recibir daño, o será invulnerable. Casi como modo dios.",
    ["Gravity"] = "Gravedad",
    ["Will the attachment be effected by gravity, or be weightless"] = "El Accesorio será afectado por la gravedad, o no tendrá peso",
    ["Frozen"] = "Congelar",
    ["Will the attachment be frozen in place, or allowed to move freely"] = "El Accesorio sera congelado en su posición, o tendrá libre movimiento",
    ["VEHICLE"] = "Vehiculo",
    ["Vehicle Options"] = "Opciones de vehiculo",
    ["Engine Always On"] = "Motor siempre encendido",
    ["Radio Loud"] = "Volumen alto de la radio",
    ["If enabled, vehicle radio will play loud enough to be heard outside the vehicle."] = "Si esta opcion está habilitada, la radio del vehiculo se reproducirá lo suficientemente fuerte como para ser escuchada fuera del vehiculo.",
    ["Sirens"] = "Sirenas",
    ["Off"] = "Apagado",
    ["Lights Only"] = "Solo luces",
    ["Sirens and Lights"] = "Sirenas y luces",
    ["Invis Wheels"] = "Ruedas invisibles",
    ["Door Lock Status"] = "Estado con puertas bloqueadas",
    ["Vehicle door locks"] = "Bloquear puertas de vehiculos",
    ["Dirt Level"] = "Nivel de suciedad",
    ["How dirty is the vehicle"] = "Que tan sucio está el vehiculo",
    ["Bullet Proof Tires"] = "Ruedas anti disparos",
    ["Burst Tires"] = "Explotar ruedas",
    ["Are tires burst"] = "¿Estan reventadas las ruedas?",
    ["Broken Doors"] = "Puertas rotas",
    ["Remove doors and trunks"] = "Quitar puertas y cofres(capo)",
    ["Break Door: Front Left"] = "Romper puerta: Delantera Izquierda",
    ["Break Door: Front Right"] = "Romper puerta: Delantera Derecha",
    ["Break Door: Back Right"] = "Romper puerta: Trasera Derecha",
    ["Break Door: Hood"] = "Romper puerta: Capo",
    ["Break Door: Trunk"] = "Romper puerta: Maletero 1",
    ["Break Door: Trunk2"] = "Romper puerta: Maletero 2",
    ["Remove door."] = "Remover puerta.",
    ["Ped Options"] = "Opciones de ped",
    ["Can Rag Doll"] = "Pueden caer con fisicas(ragdoll)",
    ["If enabled, the ped can go limp."] = "Si la opcion está activada, el ped puede cojear .",
    ["Armor"] = "Armadura",
    ["How much armor does the ped have."] = "Que tanta armadura pueden llevar los peds",
    ["On Fire"] = "El vengador fantasma",
    ["Will the ped be burning on fire, or not"] = "El ped se irá a quemar, o no",
    ["Clothes"] = "Prendas de ropa",
    ["Props"] = "Agregados",
    ["Attachment Options"] = "Opciones de Accesorio",
    ["Attached"] = "Accesorio añadido",
    ["Is this child physically attached to the parent, or does it move freely on its own."] = "Está pequeño pegado al Padre, o puede moverse con libertad.",
    ["Change Parent"] = "Cambiar pariente",
    ["Select a new parent for this child. Construct will be rebuilt to accommodate changes."] = "Elegir un nuevo pariente para el pequeño. El constructo se rearmará para actualizar los cambios.",
    ["Bone Index"] = "Posicion de union ",
    ["Which bone of the parent should this entity be attached to"] = "Cual union del padre se debe agregar esta entidad",
    ["Bone Index Picker"] = "Selector de posicion de union",
    ["Some common bones can be selected by name"] = "Algunas uniones comunes se pueden seleccionar por nombre",
    ["Soft Pinning"] = "Fijación suave",
    ["Will the attachment detach when repaired"] = "Se eliminará el Accesorio cuando se repare",
    ["Separate"] = "Separar",
    ["Detach attachment from construct to create a new construct"] = "Quitar accesorios del constructo para crear uno nuevo",
    ["Copy to Me"] = "Copiar para mi",
    ["Attach a copy of this object to your Ped."] = "fusionar una copia de este objeto a tu personaje.",
    ["Making ped into "] = "Hacer el ped en ",
    ["More Options"] = "Mas opciones",
    ["LoD Distance"] = "Distancia del detallado",
    ["Level of Detail draw distance"] = "Distancia de dibujo del nivel de detalle",
    ["Blip"] = "Punto en el mini mapa",
    ["Blip Sprite"] = "Diseño del punto",
    ["Icon to show on mini map for this construct"] = "Icono del constructo a mostrar en el minimapa",
    ["Blip Color"] = "Color del punto",
    ["Mini map icon color"] = "Color del icono del minimapa",
    ["Blip Reference"] = "Referencia del punto",
    ["Reference website for blip details"] = "Sitio web de referencia para detalles sobre el punto del mini mapa",
    ["Lights"] = "Luces",
    ["Light On"] = "Luces encendidas",
    ["If attachment is a light, it will be on and lit (many lights only work during night time)."] = "Si el accesorio es una luz, estara encendida e iluminada(algunas luces solo funcionan por la noche).",
    ["Light Disabled"] = "Luces desactivadas",
    ["If attachment is a light, it will be ALWAYS off, regardless of others settings."] = "Si el accesorio es una luz, estara apagada, independientemente de otros ajustes.",
    ["Proofs"] = "Protecciones",
    ["Bullet Proof"] = "Proteccion contra balas",
    ["If attachment is impervious to damage from bullets."] = "Si el accesorio es invulnerable a las balas",
    ["Fire Proof"] = "Proteccion contra el fuego",
    ["If attachment is impervious to damage from fire."] = "Si el accesorio es invulnerable al daño por fuego",
    ["Explosion Proof"] = "Proteccion contra explosiones",
    ["If attachment is impervious to damage from explosions."] = "Si el accesorio es invulnerable a las explosiones",
    ["Melee Proof"] = "Protecciones contra ataques cuerpo a cuerpo",
    ["If attachment is impervious to damage from melee attacks."] = "Si el accesorio es invulnerable al daño cuerpo a cuerpo",
    ["Attachments"] = "Accesorios",
    ["Add Attachment"] = "Añadir accesorio",
    ["Options for attaching other entities to this construct"] = "Opciones para fusionar otras entidades al constructo.",
    ["Curated"] = "Refinados",
    ["Browse a curated collection of attachments"] = "Buscar coleccion de accesorios refinados",
    ["Search"] = "Buscar",
    ["Search for a prop by name"] = "Buscar un accesorio por nombre",
    ["Add by Name"] = "Añadir el nombre",
    ["Add an object, vehicle, or ped by exact name."] = "Añadir un objeto, vehiculo o ped por su nombre exacto.",
    ["Object by Name"] = "Objeto por su nombre",
    ["Add an in-game object by exact name. To search for objects try https://gta-objects.xyz/"] = "Añadir, durante el juego, un objeto por su nombre exacto. Usa esta pagina para buscar objetos: https://gta-objects.xyz/ ",
    ["Ped by Name"] = "Ped por su nombre",
    ["Add a vehicle by exact name."] = "Añadir vehiculo por su nombre exacto",
    ["Open gta-objects.xyz"] = "Abrir gta-objects.xyz",
    ["Website for browsing and searching for props"] = "Pagina para explorar y buscar accesorios",
    ["Add Attachment Gun"] = "Pistola para añadir accesorios",
    ["Anything you shoot with this enabled will be added to the current construct"] = "Mientras tengas esta opcion activada, todo a lo que dispares sera agregado al constructo",
    ["Clone"] = "Clonar",
    ["Clone (In Place)"] = "Clonar(en la misma posicion)",
    ["Clone Reflection: X:Left/Right"] = "Refleccion del clon sobre el eje：X:Izquierda/Derecha",
    ["Clone Reflection: Y:Front/Back"] = "Refleccion del clon sobre el eje：Y:Adelante/Atras",
    ["Clone Reflection: Z:Up/Down"] = "Refleccion del clon sobre el eje：Z:Arriba/Abajo",
    ["Actions"] = "Acciones",
    ["Teleport"] = "Teletransportar",
    ["Teleport Into Vehicle"] = "Teletransportar al vehiculo",
    ["Teleport Me to Construct"] = "Teletransportar a mi constructo",
    ["Teleport Construct to Me"] = "Teletransportar el constructo a mi",
    ["Debug Info"] = "Informacion de depuración",
    ["Rebuild"] = "Reconstruir",
    ["Delete construct (if it still exists), then recreate a new one from scratch."] = "Borrar el constructo(si este aun existe) y crear uno nuevo desde 0.",
    ["Save As"] = "Guardar como",
    ["Save construct to disk"] = "Guardar el constructo en el disco",
    ["Delete"] = "Borrar",
    ["Delete construct and all attachments. Cannot be reconstructed unless saved."] = "Borrar el constructo y todos sus accesorios. no podrá ser reconstruido a menos que se guarde.",
    ["Are you sure you want to delete this construct? "] = "¿Estas seguro que quieres borrar este constructo? ",
    [" children will also be deleted."] = " El pequeño tambien será borrado",
    ["Edit Attachments"] = "Editar accesorios",
    ["Focusing on attachment menu "] = "Enfocar en el menu de accesorios ",
    ["Create New Construct"] = "Crear nuevo constructo",
    ["Vehicle"] = "Vehiculo",
    ["From Current"] = "Del actual",
    ["Create a new construct based on current (or last in) vehicle"] = "Crear un nuevo constructo basado en el actual(o ultimo) vehiculo",
    ["Error: You must be (or recently been) in a vehicle to create a construct from it"] = "No se pudo hacer el constructo, Debes estar(o haber estado) en un vehiculo para crear un constructo a partir de aquel",
    ["From Vehicle Name"] = "Del nombre de vehiculo",
    ["Create a new construct from an exact vehicle name"] = "Crear un nuevo constructo a partir del nombre exacto del vehiculo",
    ["Structure (Map)"] = "Estructura(mapa)",
    ["From New Construction Cone"] = "A partir de un cono para el nuevo constructo",
    ["Create a new stationary construct"] = "Crear un nuevo constructo estacionario",
    ["From Object Name"] = "A partir del nombre del objeto",
    ["Create a new stationary construct from an exact object name"] = "Crear un nuevo constructo estacionario a partir del nombre exacto del objeto",
    ["Ped (Player Skin)"] = "Ped(modelo del jugador)",
    ["From Me"] = "A partir de mi",
    ["Create a new construct from your player Ped"] = "Crear un nuevo constructo a partir de mi personaje",
    ["Player is already a construct"] = "El jugador ya es parte de un constructo",
    ["From Ped Name"] = "A partir del nombre de un ped",
    ["Create a new Ped construct from exact name"] = "Crear un nuevo constructo con ped a partir de su nombre escrito(del ped)",
    ["Load Construct"] = "Cargar constructo",
    ["Load a previously saved or shared construct into the world"] = "Cargar un constructo al mundo previamente guardado o compartido",
    ["Loaded Constructs"] = "Constructos cargados",
    ["View and edit already loaded constructs"] = "Ver y editar los constructos cargados",
    ["Search all your construct files"] = "Buscar todos tus archivos de constructos",
    ["Edit your search query"] = "Editar tu consulta de busqueda",
    ["No results found"] = "No hay nada...",
    ["Missing downloaded file "] = "Falta el archivo descargado ",
    ["File downloaded "] = "Archivo descargado ",
    ["Unzipping"] = "Descomprimiendo",
    ["Unzipped"] = "Descomprimido",
    ["Open Constructs Folder"] = "Abrir carpeta de constructos",
    ["Open constructs folder. Share your creations or add new creations here."] = "Abrir carpeta de constructos. Compartir tus creaciones o añadir nuevas aquí.",
    ["Download Curated Constructs"] = "Descargar constructos artisticos",
    ["Download a curated collection of constructs."] = "Descargar coleccion de constructos artisticos",
    ["Drive Spawned Vehicles"] = "Manejar vehiculos spawneados",
    ["When spawning vehicles, automatically place you into the drivers seat."] = "Cuando spawneas un vehiculo, automaticamente apareces manejandolo.",
    ["Wear Spawned Peds"] = "Usar peds spawneados",
    ["When spawning peds, replace your player skin with the ped."] = "Cuando spawnees un ped, se reemplazará tu skin por la del ped.",
    ["Browse"] = "Navegar",
    ["Global Configs"] = "Configuración global",
    ["Edit Offset Step"] = "Editar pasos del desfase",
    ["The amount of change each time you edit an attachment offset (hold SHIFT for fine tuning)"] = "La cantidad de cambio cada vez que se edita el desplazamiento del accesorio (mantener presionado SHIFT para un desplazamiento preciso)",
    ["Edit Rotation Step"] = "Editar Rotación",
    ["The amount of change each time you edit an attachment rotation (hold SHIFT for fine tuning)"] = "La cantidad de cambio cada vez que editas la rotación del accesorio (mantener presionado SHIFT para un desplazamiento preciso)",
    ["Show Previews"] = "Mostrar imagen previa",
    ["Show previews when adding attachments"] = "Mostrar vista previa cuando se agregan accesorios",
    ["Preview Display Delay"] = "Duración de la Vista Previa",
    ["After browsing to a construct or attachment, wait this long before showing the preview."] = "Despues de buscar un constructo o accesorio, espera este tiempo para mostrar la vista previa",
    ["Delete All on Unload"] = "Borrar todo al dejar de cargar",
    ["Deconstruct all spawned constructs when unloading Constructor"] = "Deshacer todos los constructos spawneados cuando dejes de cargar el script Constructor",
    ["Clean Up"] = "Limpiar",
    ["Remove nearby vehicles, objects and peds. Useful to delete any leftover construction debris."] = "Eliminar todos los peds, objetos y vehiculos cercanos. Es util para eliminar cualquier residuo del constructo",
    ["Script Meta"] = "Meta del script",
    ["Constructor"] = "Constructor",
    ["Version"] = "Version",
    ["Release Branch"] = "Rama de entendimiento",
    ["Switch from main to dev to get cutting edge updates, but also potentially more bugs."] = "Cambiar de usuario a desarrollador para recibir actualizaciones en prueba, pero habrá mayor posibilidad de errores",
    ["Check for Update"] = "Verificar si hay una Actualización",
    ["The script will automatically check for updates at most daily, but you can manually check using this option anytime."] = "El script revisará automaticamente las actualizaciones diariamente, pero puedes verificar manualmente las actualizaciones en cualquier momento.",
    ["No updates found"] = "No se encontraron actualizaciones",
    ["Clean Reinstall"] = "Reinstalar de forma limpia",
    ["Force an update to the latest version, regardless of current version."] = "Actualizar de manera forzada a la ultima actualizacion, independientemente de la version actual",
    ["Debug Mode"] = "Modo en Depuración",
    ["Log additional details about Constructors actions."] = "Logear detalles adicionales de las acciones del script constructor ",
    ["Log Missing Translations"] = "Logear traducciones faltantes",
    ["Log any newly found missing translations"] = "Logear cualquier traduccion faltante que se encuentre",
    ["Github Source"] = "Fuente en Github",
    ["View source files on Github"] = "Ver los archivos fuente en Github",
    ["Discord"] = "Discord",
    ["Open Discord Server"] = "Abrir servidor de Discord",
    ["Credits"] = "Creditos y agradecimientos",
    ["Developers"] = "Desarroladores",
    ["Main developer"] = "Desarrolladores principales",
    ["Development, Testing, Suggestions and Support"] = "Desarrollo, testeo, sugerencias y soporte",
    ["Inspirations"] = "Inspiraciones",
    ["Much of Constructor is based on code originally copied from Jackz Vehicle Builder and this script wouldn't be possible without it. Constructor is just my own copy of Jackz's amazing work. Thank you Jackz!"] = "Gran parte de este script ha sido basado en el codigo original copiado del script Jack's Vehicle Builder y este script no hubiera sido posible sin el. Constructor es mi propia copia del increible trabajo del Jack's, Muchas gracias Jackz!",
    ["LanceSpooner is also a huge inspiration to this script. Thanks Lance!"] = "LanceSpooner fue igualmente una gran inspiración para este script. Muchas gracias Lance!",
    ["Install Curated Constructs"] = "Instalar constructos refinados",
    ["Download and install a curated collection of constructs from https://github.com/hexarobi/stand-curated-constructs"] = "Descargar e instalar una coleccion de constructos bien trabajados desde https://github.com/hexarobi/stand-curated-constructs",
    ["Development, Ped Curation"] = "Desarrollo, refinado de los ped",
    ["Focus Menu on Spawned Constructs"] = "Enfocar menu en los constructos spawneados",
    ["When spawning a construct, focus Stands menu on the newly spawned construct. Otherwise, stay in the Load Constructs menu."] = "Cuando spawnees un constructo, el menu stand se enfocará en el nuevo constructo spawneado, de otra forma seguira en el apartado de constructos cargados",
    ["From Nearby"] = "Desde los cercanos",
    ["Create a new construct based on nearby vehicle"] = "Crear un nuevo constructo basado en un vehiculo cercano",
    ["Entity Options"] = "Opciones para las entidades",
    ["Additional options available for all entities."] = "Opciones adicionales para todas las entidades",
    ["Alpha"] = "Transparencia",
    ["The amount of transparency the object has. Local only!"] = "La cantidad de transparencia que el objeto tendrá. Solo lo podrás ver tu",
    ["Mission Entity"] = "Entidad de mision",
    ["If attachment is treated as a mission entity."] = "Si el accesorio es tratado como una entidad de mision",
    ["Give Weapon"] = "Dar arma",
    ["Give the ped a weapon."] = "Darle un arma al ped",
    ["Vehicle by Name"] = "Vehiculo por nombre",
    ["From Current Vehicle"] = "Desde el Vehiculo Actual",
    ["From Vehicle List"] = "Desde la Lista de Vehiculos",
    ["Create a new construct from a list of vehicles"] = "Crear un nuevo Constructo desde la lista de Vehiculos",
    ["From Object Search"] = "Desde el buscador de objetos",
    ["Create a new map by searching for a object"] = "Crear un nuevo mapa desde el objeto buscado",
    ["From Current Ped"] = "Desde el ped actual",
    ["From Ped List"] = "Desde la lista de peds",
    ["Create a new construct from a list of peds"] = "Crear un nuevo constructo desde la lista de peds",
    ["Spawn Entity Delay"] = "Demora para spawnear una entidad",
    ["Pause after spawning any object. Useful for preventing issues when spawning large constructs with many objects."] = "Pausa luego de spawnear cualquier objeto. Util cuando se spawnean constructos con muchos objetos.",
    ["Freeze Position"] = "Congelar Posicion",
    ["Will the construct be frozen in place, or allowed to move freely"] = "El constructo estará inmovil en su posición o podrá moverse libremente.",
    ["Particle Effects"] = "Efectos de particulas",
    ["Browse a curated collection of particle effects"] = "Buscar coleccion de efectos de particulas interesantes",
    ["Clean Up Distance"] = "Distancia de limpieza",
    ["How far away the cleanup command will reach to delete entities."] = "Que tan lejos el comando limpieza alcanzará a borrar las entidades",
    ["Info"] = "Informacion",
    ["Set name of the player that created this construct"] = "Poner el nombre del jugador que ha creado este constructo",
    ["Description"] = "Descripcion",
    ["Set text to describe this construct"] = "Poner el texto para describir el constructo",
    ["Create a new construct from a base vehicle, object, or ped. Then extend it with attachments. Finally save your creation and share it with others."] = "Crear un nuevo constructo a partir de un vehiculo, objeto o ped. Luego diseñalo con accesorios. Finalmente guarda tu creación y compartela con otros",
    ["Set global configuration options."] = "Seleccionar las opciones de configuración global",
    ["Information and options about the Constructor script itself."] = "Informacion sobre las opciones de este script",
    ["Chat Spawnable Dir"] = "Direccion del chat generador",
    ["Set a Constructs sub-folder to be spawnable by name. Only available for users with permission to use Spawn Commands. See Online>Chat>Commands"] = "Seleccionar la sub-carpeta de constructos que son generados por nombre. Solo estará disponible para usuarios con el permiso para usar comandos en chat. Lo puedes ver en Online>Chat>Comandos",
    ["Constructs Allowed Per Player"] = "Constructos permitidos por jugador",
    ["Tryce"] = "Tryce",
    ["Spanish"] = "Español",
    ["The number of constructs any one player can spawn at a time. When a player tried to spawn additional constructs past this limit, the oldest spawned construct will be deleted."] = "El numero maximo de constructos que cada jugador puede generar. Si intenta generar mas del limite, se eliminará el constructo mas antiguo",
    ["Editing"] = "Editando",
    ["Set configuration options relating to editing constructs."] = "Establecer las opciones de configuracion sobre la edicion de los constructos ",
    ["Previews"] = "Vistas Previas",
    ["Set configuration options relating to previewing constructs."] = "Establecer las opciones de configuracion sobre las vistas previas de los constructos",
    ["Debug"] = "Depuracion",
    ["Chat Spawn Commands"] = "Comando de chat para generar(spawn)",
    ["Hold SHIFT to fine tune, or hold CONTROL to move ten steps at once."] = "Mantener SHIFT para ajustar con precision, o mantener CONTROL para mover 10 pasos a la vez .",
    ["Set configuration options relating to debugging the menu."] = "Establecer las opciones de configuracion sobre la depuracion del menu",
    ["Set configuration options relating to spawning constructs."] = "Establecer las opciones de configuracion sobre la generacion de constructos",
    ["Translators"] = "Traductores",
    ["Auto-Update"] = "Actualizador automatico",
    ["Rotation Order"] = "Orden de rotacion",
    ["Set the order that rotations should be applied."] = "Establecer el orden de rotacion que debería ser aplicado",
    ["Additional options available for Ped entities."] = "Opciones adicionales para las entidades de ped disponibles.",
    ["Make a new copy of this entity, at the same location as the original"] = "Hacer una nueva copia de esta entidad, en la misma ubicación que la original",
    ["Make a new copy of this entity, but at the mirror location about the X-axis"] = "Hacer una nueva copia de esta entidad, pero reflejada sobre el eje X.",
    ["Make a new copy of this entity, but at the mirror location about the Y-axis"] = "Hacer una nueva copia de esta entidad, pero reflejada sobre el eje Y.",
    ["Make a new copy of this entity, but at the mirror location about the Z-axis"] = "Hacer una nueva copia de esta entidad, pero reflejada sobre el eje Z.",
    ["Move your player to the construct, or vice versa."] = "Mover el personaje hacia el constructo o en viceversa(de forma contraria) .",
    ["Information about the construct"] = "Información acerca del constructo",
    ["Position and Rotation options"] = "Opciones de posicion y Rotacion",
    ["Configuration options for this entity"] = "Opciones de configuracion para esta entidad",
    ["Modify other entities attached to this entity"] = "Modificar otras entidades fusionadas a esta entidad",
    ["Make a copy of this attachment"] = "Hacer una copia de este accesorio",
    ["Move your player nearby the construct, but not inside of it."] = "Mover a tu personaje cerca del constructo pero no adentro de el",
    ["Move the construct to be nearby your player"] = "Mover el constructo cerca de tu personaje",
    ["Automatically install updates as they are released. Disable if you cannot successfully fetch updates as normal."] = "Instalar automaticamente las actualizaciones cuando son publicadas, Desactiva esta opcion si las actualizaciones no se instalan correctamente.",
}

--- French (Canada)
--- By       ukn

translations.lang["fr"] = {
    ["More stable, but updated less often."] = "Plus stable, mais moins mis à jour.",
    ["Cutting edge updates, but less stable."] = "Actualisé, mais moins stable.",
    ["Loading..."] = "Chargement...",
    ["Installing auto-updater..."] = "Installation de la mise à jour automatique...",
    ["Error downloading auto-updater: "] = "Erreur de l'installation de la mis à jour automatique. ",
    ["Found empty file."] = "Fichier vide trouvé.",
    ["Could not open file for writing."] = "Incapable d'ouvrir le fichier pour l'écriture.",
    ["Successfully installed auto-updater lib"] = "Installation avec succès du logiciel de mis à jour automatique.",
    ["Error downloading auto-updater lib. Update failed to download."] = "Erreur de l'installation du logiciel de mis à jour automatique. La mise à jour n'a pas été installée.",
    ["Error downloading auto-updater lib. HTTP Request timeout"] = "Erreur de l'installation du logiciel de mis à jour automatique. La requête HTTP à mise trop de temps à répondre.",
    ["Invalid auto-updater lib. Please delete your Stand/Lua Scripts/lib/auto-updater.lua and try again"] = "Fichier clé de l'installateur automatique non-trouvable. Veuillez supprimer votre Stand/Lua Scripts/lib/auto-updater.lua et ré-essayer.",
    ["translations"] = "Traductions",
    ["Missing translation: "] = "Traductions manquantes: ",
    ["Adding translations for language "] = "Ajout des traductions pour les langues ",
    ["Found label for "] = "Nom trouvé pour ",
    ["Registered "] = "Enregistrement de ",
    ["Saving translation for "] = "Enregistrement des traductions pour ",
    ["Could not natives lib. Make sure it is selected under Stand > Lua Scripts > Repository > natives-1663599433"] = "Incapable de trouver la liste des natives. Assurez-vous que Stand > Lua Scripts > Repository > natives-1663599433 est sélectionné.",
    ["Max table depth reached"] = "Limite du tableau atteinte.",
    ["Adding attachment to construct "] = "Ajout du fichier joint à Construct ",
    ["Removing preview "] = "Aperçu retiré ",
    ["Adding a preview "] = "Aperçu ajouté ",
    ["Building construct plan description "] = "Création du plan de description de Construct",
    ["Adding preview for construct plan "] = "Ajout d'un aperçu au plan de Construct ",
    ["Shoot (or press J) to add "] = "Tirez (ou appuyez sur J) pour ajouter ",
    ["Attaching "] = "Joindre ",
    ["Adding spawned construct to list "] = "Ajout du Construct généré à la liste ",
    ["Creating construct from vehicle handle "] = "Création du Construct à partir d'un véhicule ",
    ["Vehicle is already a construct"] = "Le véhicule est déjà un Construct",
    ["Saving construct "] = "Sauvegarde du Construct ",
    ["Cannot write to file "] = "Incapable d'écrire dans le fichier ",
    ["Cannot save vehicle: Error serializing."] = "Incapable de sauvegarder: Problème de série.",
    ["Deleting construct "] = "Suppression du Construct ",
    ["Spawning construct from plan "] = "Génération du Construct à partir de plan ",
    ["Failed to spawn construct from plan "] = "Incapable de générer le Construct à partir du plan ",
    ["Building construct from plan name="] = "Création du construct à partir du nom de plan=",
    ["Clean up on close"] = "Nettoyer à l'arrêt",
    ["Rebuilding "] = "Reconstruction ",
    ["Invalid construct file. "] = "Fichier Construct invalide. ",
    ["Could not read file '"] = "Erreur de lecture du fichier '",
    ["Failed to load XML file: "] = "Incapable de charger le fichier XML: ",
    ["Failed to load INI file: "] = "Incapable de charger le fichier INI: ",
    ["Failed to load JSON file: "] = "Incapable de charger le fichier JSON: ",
    ["Loading construct plan file from "] = "Chargement du plan de Construct à partir de ",
    ["Failed to load construct from file "] = "Incapable de charger le Construct à partir du fichier ",
    ["Loaded construct plan "] = "Chargement du plan Construct ",
    ["Animating peds "] = "Animation des corps ",
    ["Rebuilding ped "] = "Recréation des corps ",
    ["Rebuilding reattach to menu "] = "Recréation de la jonction au menu ",
    ["Max depth reached while reattaching"] = "Atteinte de la limite pendant le processus de jonction",
    ["Reattaching "] = "Re-jonction ",
    ["Load More"] = "Voir plus",
    ["Attachment missing handle"] = "Manque du guide des joints",
    ["Name"] = "Nom",
    ["Set name of the attachment"] = "Nom de la jonction",
    ["Position"] = "Position",
    ["Offset"] = "Décalage",
    ["X: Left / Right"] = "X: Droite/Gauche",
    ["Y: Forward / Back"] = "Y: Devant/Derrière",
    ["Z: Up / Down"] = "Z: Haut/Bas",
    ["Rotation"] = "Rotation",
    ["X: Pitch"] = "X: Tangage",
    ["Y: Roll"] = "Y: Roulement",
    ["Z: Yaw"] = "Z: Embardée",
    ["World Position"] = "Position du monde",
    ["World Rotation"] = "Rotation du monde",
    ["Hold SHIFT to fine tune"] = "Appuyez sur SHIFT pour améliorer la précision",
    ["Options"] = "Options",
    ["Visible"] = "Visible",
    ["Will the attachment be visible, or invisible"] = "Est-ce que la jonction sera visible, ou invisible",
    ["Collision"] = "Collision",
    ["Will the attachment collide with things, or pass through them"] = "Est-ce que la jonction aura des collisions, ou est-ce qu'elle sera traversable",
    ["Invincible"] = "Invincible",
    ["Will the attachment be impervious to damage, or be damageable. AKA Godmode."] = "Est-ce que la jonction sera immunisé au dégâts, ou non. EN GROS Invincible.",
    ["Gravity"] = "Gravité",
    ["Will the attachment be effected by gravity, or be weightless"] = "Est-ce que la jonction sera affectée par la gravité, ou sera-t-elle sans poids",
    ["Frozen"] = "Gel",
    ["Will the attachment be frozen in place, or allowed to move freely"] = "Est-ce que la jonction sera gelée sur place, ou capable de mouvement",
    ["VEHICLE"] = "VÉHICULES",
    ["Vehicle Options"] = "Options du véhicule",
    ["Engine Always On"] = "Moteur toujours enclenché",
    ["Radio Loud"] = "Radio forte",
    ["If enabled, vehicle radio will play loud enough to be heard outside the vehicle."] = "Activé, cette option permet que la radio soit jouée en dehors du véhicule.",
    ["Sirens"] = "Sirènes",
    ["Off"] = "Désactivé",
    ["Lights Only"] = "Lumières seulement",
    ["Sirens and Lights"] = "Lumières et sirènes",
    ["Invis Wheels"] = "Pneus invisibles",
    ["Door Lock Status"] = "Statut du verrouillage des portes",
    ["Vehicle door locks"] = "Verrouillage des portes",
    ["Dirt Level"] = "Niveau sur-terre",
    ["How dirty is the vehicle"] = "Niveau de saleté du véhicule",
    ["Bullet Proof Tires"] = "Pneus parre-balles",
    ["Burst Tires"] = "Éclater les pneus",
    ["Are tires burst"] = "Niveau d'éclat des pneus",
    ["Broken Doors"] = "Portes brisées",
    ["Remove doors and trunks"] = "Supprimer toutes les portes",
    ["Break Door: Front Left"] = "Détruire la porte: Haut-Droite",
    ["Break Door: Front Right"] = "Détruire la porte: Haut-Gauche",
    ["Break Door: Back Right"] = "Détruire la porte: Bas-Droite",
    ["Break Door: Hood"] = "Détruire la porte: Capot",
    ["Break Door: Trunk"] = "Détruire la porte: Coffre",
    ["Break Door: Trunk2"] = "Détruire la porte: Coffre2",
    ["Remove door."] = "Supprimer la porte.",
    ["Ped Options"] = "Options de corps.",
    ["Can Rag Doll"] = "Capable de mouvement ragdoll.",
    ["If enabled, the ped can go limp."] = "Si activé, le corps deviendra mou",
    ["Armor"] = "Armure",
    ["How much armor does the ped have."] = "Combien d'armure est-ce que le corps possède",
    ["On Fire"] = "En feu",
    ["Will the ped be burning on fire, or not"] = "Est-ce que le corps est inflammable",
    ["Clothes"] = "Vêtements",
    ["Props"] = "Objets",
    ["Attachment Options"] = "Options de jonction",
    ["Attached"] = "Joint",
    ["Is this child physically attached to the parent, or does it move freely on its own."] = "Est-ce que l'objet doit être attaché à son ascendant, ou est-ce qu'il est capable de bouger seul",
    ["Change Parent"] = "Changer l'ordre d'ascendance",
    ["Select a new parent for this child. Construct will be rebuilt to accommodate changes."] = "Sélectionner un nouvel ascendant pour cet objet. Construct se ré-écrira afin d'adopter les changements.",
    ["Bone Index"] = "Index des os",
    ["Which bone of the parent should this entity be attached to"] = "À quel os de l'ascendant est-ce que l'entité doit se joindre",
    ["Bone Index Picker"] = "Index de séléction des os",
    ["Some common bones can be selected by name"] = "Certains os peuvent être sélectionné par nom",
    ["Soft Pinning"] = "Épinglement facile",
    ["Will the attachment detach when repaired"] = "Est-ce que la jonction se détachera quand elle sera réparée",
    ["Separate"] = "Séparer",
    ["Detach attachment from construct to create a new construct"] = "Détacher la jonction du Construct pour créer un nouveau Construct",
    ["Copy to Me"] = "Copier à Moi",
    ["Attach a copy of this object to your Ped."] = "Joindre une copie de l'objet au corps.",
    ["Making ped into "] = "Transformer le corps en ",
    ["More Options"] = "Plus d'options",
    ["LoD Distance"] = "Distance d'affichage",
    ["Level of Detail draw distance"] = "Distance du niveau de détails",
    ["Blip"] = "Point",
    ["Blip Sprite"] = "Icône du point",
    ["Icon to show on mini map for this construct"] = "Icône de représentation du Construct sous forme de point sur la carte",
    ["Blip Color"] = "Couleur du point",
    ["Mini map icon color"] = "Couleur de point en mini-carte",
    ["Blip Reference"] = "Référence du point",
    ["Reference website for blip details"] = "Site web de référence pour les détails du point",
    ["Lights"] = "Lumières",
    ["Light On"] = "Lumière activée",
    ["If attachment is a light, it will be on and lit (many lights only work during night time)."] = "Si la jonction est une lumière, elle sera toujours allumée.",
    ["Light Disabled"] = "Lumière désactivée",
    ["If attachment is a light, it will be ALWAYS off, regardless of others settings."] = "Si la jonction est une lumière, elle sera toujours éteinte.",
    ["Proofs"] = "Protections",
    ["Bullet Proof"] = "Protection des balles",
    ["If attachment is impervious to damage from bullets."] = "Si la jonction est parre-balles.",
    ["Fire Proof"] = "Protection du feu",
    ["If attachment is impervious to damage from fire."] = "Si la jonction est incapable de brûler.",
    ["Explosion Proof"] = "Protection des explosions",
    ["If attachment is impervious to damage from explosions."] = "Si la jonction est résistante aux explosions",
    ["Melee Proof"] = "Protections de courte portée",
    ["If attachment is impervious to damage from melee attacks."] = "Si la jonction résiste aux attaques de courte portée",
    ["Attachments"] = "Jonctions",
    ["Add Attachment"] = "Ajouter un joint",
    ["Options for attaching other entities to this construct"] = "Options de jonction d'une entité au Construct.",
    ["Curated"] = "Pré-fabriqué",
    ["Browse a curated collection of attachments"] = "Visualiser une collection pré-fabriquée de jonctions",
    ["Search"] = "Rechercher",
    ["Search for a prop by name"] = "Chercher un objet par son nom",
    ["Add by Name"] = "Ajouter par nom",
    ["Add an object, vehicle, or ped by exact name."] = "Ajouter un objet, un véhicule ou un corps par son nom exact",
    ["Object by Name"] = "Nom de l'objet",
    ["Add an in-game object by exact name. To search for objects try https://gta-objects.xyz/"] = "Ajouter un objet en jeu par son nom. Afin de trouver des noms, essayez https://gta-objects.xyz/",
    ["Ped by Name"] = "Nom du corps",
    ["Add a vehicle by exact name."] = "Ajouter un véhicule par son nom exact",
    ["Open gta-objects.xyz"] = "Ouvrir gta-objects.xyz",
    ["Website for browsing and searching for props"] = "Site web pour naviguer et rechercher des objets",
    ["Add Attachment Gun"] = "Ajouter une Arme de Jonction",
    ["Anything you shoot with this enabled will be added to the current construct"] = "Tout sur cedont vous tirez sera ajouté au Construct actuel.",
    ["Edit Attachments"] = "Modifier les jonctions",
    ["Clone"] = "Clôner",
    ["Clone (In Place)"] = "Clôner (sur place)",
    ["Clone Reflection: X:Left/Right"] = "Reflet du Clône：X:Droite/Gauche",
    ["Clone Reflection: Y:Front/Back"] = "Reflet du Clône：：Y:Avant/Arrière",
    ["Clone Reflection: Z:Up/Down"] = "Reflet du Clône：：Z:Haut/Bas",
    ["Actions"] = "Actions",
    ["Teleport"] = "Téléportation",
    ["Teleport Into Vehicle"] = "Téléportation dans le véhicule",
    ["Teleport Me to Construct"] = "Téléportation directe au Construct",
    ["Teleport Construct to Me"] = "Téléportation du Construct vers moi",
    ["Debug Info"] = "Informations de débogage",
    ["Rebuild"] = "Reconstruction",
    ["Delete construct (if it still exists), then recreate a new one from scratch."] = "Supprimer le Construct (s'il existe toujours), puis recréer un nouveau.",
    ["Save As"] = "Enregistrer sous",
    ["Save construct to disk"] = "Sauvegarde du Construct sur le disque",
    ["Delete"] = "Supprimer",
    ["Delete construct and all attachments. Cannot be reconstructed unless saved."] = "Supprime le Construct et toutes les jonctions. Ne peut pas être reconstruits s'il n'est pas sauvegardé.",
    ["Are you sure you want to delete this construct? "] = "Êtes-vous sûr de vouloir supprimer le Construct? ",
    [" children will also be deleted."] = " descendants seront aussi supprimés.",
    ["Rebuilding attachment menu "] = "Reconstruction du menu de jonctions ",
    ["Focusing on attachment menu "] = "Mise en évidence du menu de jonctions ",
    ["Create New Construct"] = "Créer un nouveau Construct",
    ["Vehicle"] = "Véhicule",
    ["From Current"] = "D'après le vôtre",
    ["Create a new construct based on current (or last in) vehicle"] = "Créer un nouveau Construct d'après votre véhicule actuel",
    ["Error: You must be (or recently been) in a vehicle to create a construct from it"] = "Erreur: Vous devez être (ou avoir été) dans un véhicule afin de créer un Construct d'après ce-dernier.",
    ["From Vehicle Name"] = "D'après le nom du véhicule",
    ["Create a new construct from an exact vehicle name"] = "Créer un nouveau Construct d'après le nom exact d'un véhicule",
    ["Structure (Map)"] = "Structure de la carte",
    ["From New Construction Cone"] = "D'après le Nouveau Cône de Construction",
    ["Create a new stationary construct"] = "D'après un Construct stationnaire",
    ["From Object Name"] = "D'après le nom d'un objet",
    ["Create a new stationary construct from an exact object name"] = "Créer un nouveau Construct stationnaire d'après le nom exact d'un objet",
    ["Ped (Player Skin)"] = "Corps (Apparence du joueur)",
    ["From Me"] = "D'après moi",
    ["Create a new construct from your player Ped"] = "Créer un nouveau Construct d'après le corps de vôtre joueur.",
    ["Player is already a construct"] = "Le joueur est déjà un Construct",
    ["From Ped Name"] = "D'après le nom d'un corps",
    ["Create a new Ped construct from exact name"] = "Créer un nouveau corps d'après un nom exact",
    ["Load Construct"] = "Charger Construct",
    ["Load a previously saved or shared construct into the world"] = "Charger un Construct anciennement sauvegardé ou partagé dans le monde",
    ["Loaded Constructs"] = "Chargement des Constructs",
    ["View and edit already loaded constructs"] = "Voir et moidifier des Constructs actuellements chargés",
    ["Search all your construct files"] = "Rechercher ",
    ["Edit your search query"] = "Modifier vos paramètres de recherche",
    ["No results found"] = "Aucun résultat trouvé",
    ["Missing downloaded file "] = "Fichier téléchargé manquant ",
    ["File downloaded "] = "Téléchargement du fichier ",
    ["Unzipping"] = "Décompression",
    ["Unzipped"] = "Décompressé",
    ["Open Constructs Folder"] = "Ouvrir Construct",
    ["Open constructs folder. Share your creations or add new creations here."] = "Ouvrir le fichier de Construct. Partagez vos créations et ajoutez-en des nouvelles.",
    ["Download Curated Constructs"] = "Télécharger les Constructs pré-générés",
    ["Download a curated collection of constructs."] = "Télécharger une collection pré-générée de Constructs.",
    ["Drive Spawned Vehicles"] = "Conduire les véhicules générés",
    ["When spawning vehicles, automatically place you into the drivers seat."] = "Quand le véhicule est généré, automatiquement placer le joueur dans la place de conducteur.",
    ["Wear Spawned Peds"] = "Quand le corps est généré",
    ["When spawning peds, replace your player skin with the ped."] = "Quand un corps est généré, remplacer votre apparence par celui du corps",
    ["Browse"] = "Rechercher",
    ["Global Configs"] = "Configurations globales",
    ["Edit Offset Step"] = "Modifier les paramètres de décalage",
    ["The amount of change each time you edit an attachment offset (hold SHIFT for fine tuning)"] = "Le nombre de changements d'après le décalage de la rotation (enfoncer SHIFT pour davantage de précision)",
    ["Edit Rotation Step"] = "Modifier la précision de la Rotation",
    ["The amount of change each time you edit an attachment rotation (hold SHIFT for fine tuning)"] = "Le nombre de changements d'après la rotation (enfoncer SHIFT pour davantage de précision)",
    ["Show Previews"] = "Montrer les aperçus",
    ["Show previews when adding attachments"] = "Montrer les aperçus pendant l'ajout des jonctions",
    ["Preview Display Delay"] = "Délai d'affichage des aperçus",
    ["After browsing to a construct or attachment, wait this long before showing the preview."] = "Après la recherche d'un Construct ou d'une jonction, attendre avant de montrer l'aperçu.",
    ["Delete All on Unload"] = "Tout supprimer en déchargement",
    ["Deconstruct all spawned constructs when unloading Constructor"] = "Déconstruire tout les objets générés quand Constructor est déchargé",
    ["Clean Up"] = "Nettoyer",
    ["Remove nearby vehicles, objects and peds. Useful to delete any leftover construction debris."] = "Retirer les véhicules proches",
    ["Script Meta"] = "Méta du Script",
    ["Constructor"] = "Constructor",
    ["Version"] = "Version",
    ["Release Branch"] = "Branche de publication",
    ["Switch from main to dev to get cutting edge updates, but also potentially more bugs."] = "Changer de branche afin de bénéficier de plus de mises à jour, mais être aussi susceptible à plus de bogues.",
    ["Check for Update"] = "Chercher une mise à jour",
    ["The script will automatically check for updates at most daily, but you can manually check using this option anytime."] = "Le script va rechercher une mise à jour automatiquement & régulièrement, mais vous pouvez aussi le faire en utilisant cette option.",
    ["No updates found"] = "Aucune mise à jour trouvée",
    ["Clean Reinstall"] = "Réinstallation complète",
    ["Force an update to the latest version, regardless of current version."] = "Force une réinitialisation à la dernière version, peu importe votre version actuelle.",
    ["Debug Mode"] = "Mode de débogage",
    ["Log additional details about Constructors actions."] = "Enregistrer davantage de détails sur les actions de Constuct",
    ["Log Missing Translations"] = "Enregistrer les traductions manquantes",
    ["Log any newly found missing translations"] = "Enregistrer chaque traductions manquantes",
    ["Github Source"] = "Github",
    ["View source files on Github"] = "Voir le code source sur Github",
    ["Discord"] = "Discord",
    ["Open Discord Server"] = "Accéder au Discord",
    ["Credits"] = "Crédits",
    ["Developers"] = "Développeurs",
    ["Main developer"] = "Développeur en chef",
    ["Development, Testing, Suggestions and Support"] = "Développement, test, suggestions et aide",
    ["Inspirations"] = "Inspirations",
    ["Much of Constructor is based on code originally copied from Jackz Vehicle Builder and this script wouldn't be possible without it. Constructor is just my own copy of Jackz's amazing work. Thank you Jackz!"] = "Beaucoup de ce code avait été copié du Jackz Vehicle Builder et ce script n'aurait pas vu le jour sans lui. Constructor est seulement ma copie du grand travail de Jack. Merci beaucoup Jackz!",
    ["LanceSpooner is also a huge inspiration to this script. Thanks Lance!"] = "LanceSpooner est une grande inspiration pour ce script. Merci, Lance!",
    ["Install Curated Constructs"] = "Installer les listes de Constructs",
    ["Download and install a curated collection of constructs from https://github.com/hexarobi/stand-curated-constructs"] = "Télécharger et installer une collection pré-fabriquée de constructs depuis https://github.com/hexarobi/stand-curated-constructs",
    ["Development, Ped Curation"] = "Développement, algorithme des corps",
    ["Focus Menu on Spawned Constructs"] = "Focaliser le menu sur les Constructs générés",
    ["When spawning a construct, focus Stands menu on the newly spawned construct. Otherwise, stay in the Load Constructs menu."] = "Quand un Construct est généré, focaliser le menu Stand sur le nouveau Construct. Sinon, rester sur le menu de Chargement du Construct.",
    ["From Nearby"] = "D'un rapproché",
    ["Create a new construct based on nearby vehicle"] = "Créer un nouveau Construct à partir d'un véhicule proche",
    ["Entity Options"] = "Options d'entité",
    ["Additional options available for all entities."] = "Davantage d'options pour toutes les entités.",
    ["Alpha"] = "Transparence",
    ["The amount of transparency the object has. Local only!"] = "La transparence de cette objet. Seulement pour vous!",
    ["Mission Entity"] = "Entité de mission",
    ["If attachment is treated as a mission entity."] = "Si la jonction est traitée comme une entité de mission.",
    ["Give Weapon"] = "Donner une arme",
    ["Give the ped a weapon."] = "Donner une arme au corps",
    ["Vehicle by Name"] = "Nom du véhicule",
    ["From Current Vehicle"] = "D'après ce véhicule",
    ["From Vehicle List"] = "D'après la liste de véhicule",
    ["Create a new construct from a list of vehicles"] = "Créer un nouveau construct à partir d'une liste de véhicule",
    ["From Object Search"] = "De la recherche d'objet",
    ["Create a new map by searching for a object"] = "Créer une nouvelle carte en cherchant un objet",
    ["From Current Ped"] = "D'après ce corps",
    ["From Ped List"] = "D'après une liste de corps",
    ["Create a new construct from a list of peds"] = "Créer un nouveau Construct d'après une liste de corps",
    ["Spawn Entity Delay"] = "Délai de génération des entités",
    ["Pause after spawning any object. Useful for preventing issues when spawning large constructs with many objects."] = "每个实体生成之间的延迟.",
    ["Freeze Position"] = "Gel de position",
    ["Will the construct be frozen in place, or allowed to move freely"] = "Est-ce que les Constructs sont gelés, ou seront-ils capables de bouger.",
    ["Particle Effects"] = "Effets de particules",
    ["Browse a curated collection of particle effects"] = "Rechercher une collection pré-fabriquée d'effets de particules",
    ["Clean Up Distance"] = "Distance de nettoyage",
    ["How far away the cleanup command will reach to delete entities."] = "L'étendu maximale de la commande de nettoyage afin de supprimer les entités.",
    ["Info"] = "Informations",
    ["Set name of the player that created this construct"] = "Mettre le nom du joueur qui a fabriqué ce Construct",
    ["Description"] = "Description",
    ["Set text to describe this construct"] = "Mettre une description du Construct",
    ["Create a new construct from a base vehicle, object, or ped. Then extend it with attachments. Finally save your creation and share it with others."] = "Créer un novueau Construct pour ce véhicule, cet objet ou ce corps. Étendez-le avec des jonctions. Ensuite, partagez-le avec les autres.",
    ["Set global configuration options."] = "Ajuster les paramètres globaux.",
    ["Information and options about the Constructor script itself."] = "Informations & options du script Constructor.",
    ["Chat Spawnable Dir"] = "Message du répertoire de génération",
    ["Set a Constructs sub-folder to be spawnable by name. Only available for users with permission to use Spawn Commands. See Online>Chat>Commands"] = "Faire que les Constructs du fichier puissent être générés par nom. Seulement les joueurs aux permissions requises pourront utiliser les commandes. Regardez Online>Chat> Commands",
    ["Constructs Allowed Per Player"] = "Constructs autorisés par joueurs",
    ["CqCq and Zelda Two"] = "CqCq et Zelda Two",
    ["Chinese"] = "Chinois",
    ["The number of constructs any one player can spawn at a time. When a player tried to spawn additional constructs past this limit, the oldest spawned construct will be deleted."] = "Le nombre de Construct qu'un joueur peut créer. Quand un jouer tentera de générer plus de Constructs, le plus ancien sera retiré.",
    ["Editing"] = "Édition",
    ["Set configuration options relating to editing constructs."] = "Mettre en place une configuration pour l'édition des Constructs",
    ["Previews"] = "Aperçu",
    ["Set configuration options relating to previewing constructs."] = "Mettre en place une configuration pour l'aperçu des Constructs",
    ["Debug"] = "Débogage",
    ["Chat Spawn Commands"] = "Génération des commandes textes",
    ["Hold SHIFT to fine tune, or hold CONTROL to move ten steps at once."] = "Enfoncer SHIFT pour améliorer la précision, ou CONTROL afin de se déplacer de 10 cases à la fois.",
    ["Set configuration options relating to debugging the menu."] = "Configurer les options du débogage du menu.",
    ["Set configuration options relating to spawning constructs."] = "Configurer les options pour la génération des Constructs.",
    ["Translators"] = "Traducteurs",
    ["Auto-Update"] = "Mise à jour automatique",
    ["Rotation Order"] = "Ordre de rotation",
    ["Set the order that rotations should be applied."] = "Faire que les rotations suivent un ordre précis.",
    ["Additional options available for Ped entities."] = "Davantages d'options disponibles pour les entités.",
    ["Make a new copy of this entity, at the same location as the original"] = "Créer une nouvelle copie de l'entité, à la même position que l'originale.",
    ["Make a new copy of this entity, but at the mirror location about the X-axis"] = "Créer une nouvelle copie de l'entité, à la position de l'entité (miroir de l'axe X)",
    ["Make a new copy of this entity, but at the mirror location about the Y-axis"] = "Créer une nouvelle copie de l'entité, à la position de l'entité (miroir de l'axe Y)",
    ["Make a new copy of this entity, but at the mirror location about the Z-axis"] = "Créer une nouvelle copie de l'entité, à la position de l'entité (miroir de l'axe Z)",
    ["Move your player to the construct, or vice versa."] = "Déplacer votre joueur au Construct, ou vice-versa.",
    ["Information about the construct"] = "Informations du Construct",
    ["Position and Rotation options"] = "Options de position et de rotation",
    ["Configuration options for this entity"] = "Options configurables de l'entité",
    ["Modify other entities attached to this entity"] = "Modifier",
    ["Make a copy of this attachment"] = "Faire une copie de la jonction",
    ["Move your player nearby the construct, but not inside of it."] = "Déplacer le joueur proche du Construct, mais pas à l'intérieur",
    ["Move the construct to be nearby your player"] = "Déplacer le Construct proche du joueur",
    ["Automatically install updates as they are released. Disable if you cannot successfully fetch updates as normal."] = "Télécharger automatiquement les mises à jour quand elles sont disponibles. Désactivez si vous ne pouvez pas les obtenir normalement.",
}

---
--- Return
---

translations.inject_custom_translations()
return translations


